Recently, three-dimensional cameras that produce image data with both color and depth information at the pixel level have proliferated. Such cameras include, for example, Microsoft Kinect and 3D Systems Sense. The depth represents the distance between the camera and the surface of an object in the scanned scene. A 3D mesh model of the object can be constructed from the image data, and provided to a 3D printer for printing a 3D copy of the object. The 3D mesh model defines faces and vertices. Vertices define the intersections of adjacent faces. Colors at the vertices can be defined by a color value, such as a red-green-blue (RGB) color value or other suitable color value. The colors on the faces of the 3D mesh model can be computed from the vertex colors. However, because the computationally intensive spatial alignment of the color and depth information detected by the camera sensors is performed in real-time, such 3D cameras are typically only capable of producing low resolution images, which can introduce undesirable noise into the image data, particularly in scenes with low, diffused lighting. When a 3D mesh model representing noisy 3D image data is used in a 3D printing application, the noise in the image data translates into smudges on the 3D mesh model. Furthermore, 3D printers generally do not produce high-fidelity colors at this time. Existing post-processing techniques for removing the noise from image data is either highly manual or involve compromising details, such as edges. Thus, there is a need for improved noise reduction and color smoothing techniques for scanned 3D models that produce acceptable results for a variety of image processing applications.